home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 July: Mac OS SDK / Dev.CD Jul 97 SDK1.toast / Development Kits (Disc 1) / PC Card Manager / CIncludes / DriverSupport.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-01-13  |  5.9 KB  |  211 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        DriverSupport.h
  3.  
  4.      Contains:    Driver Support Interfaces.
  5.  
  6.      Version:    Sustem 8
  7.  
  8.      DRI:        Jonathan Sand
  9.  
  10.      Copyright:    © 1984-1996 by Apple Computer, Inc.
  11.                  All rights reserved.
  12.  
  13.      Warning:    *** APPLE INTERNAL USE ONLY ***
  14.                  This file may contain unreleased API's
  15.  
  16.      BuildInfo:    Built by:            SuperMario Build Daemon
  17.                  With Interfacer:    2.0d11   (PowerPC native)
  18.                  From:                DriverSupport.i
  19.                      Revision:        6
  20.                      Dated:            3/15/96
  21.                      Last change by:    jrs
  22.                      Last comment:    Move SynchronizeIO to DriverSynchronization.
  23.  
  24.      Bugs:        Report bugs to Radar component “System Interfaces”, “Latest”
  25.                  List the version information (from above) in the Problem Description.
  26.  
  27. */
  28. #ifndef __DRIVERSUPPORT__
  29. #define __DRIVERSUPPORT__
  30.  
  31. #ifndef __CONDITIONALMACROS__
  32. #include <ConditionalMacros.h>
  33. #endif
  34. #ifndef __TYPES__
  35. #include <Types.h>
  36. #endif
  37. #ifndef __KERNEL__
  38. #include <Kernel.h>
  39. #endif
  40. #if FOR_SYSTEM8_PREEMPTIVE
  41. #ifndef __TIMING__
  42. #include <Timing.h>
  43. #endif
  44. #endif
  45. #ifndef __DEVICES__
  46. #include <Devices.h>
  47. #endif
  48. #ifndef __OSUTILS__
  49. #include <OSUtils.h>
  50. #endif
  51. #ifndef __MACHINEEXCEPTIONS__
  52. #include <MachineExceptions.h>
  53. #endif
  54.  
  55. #ifdef __cplusplus
  56. extern "C" {
  57. #endif
  58.  
  59. #if PRAGMA_IMPORT_SUPPORTED
  60. #pragma import on
  61. #endif
  62.  
  63. #if PRAGMA_ALIGN_SUPPORTED
  64. #pragma options align=mac68k
  65. #endif
  66.  
  67. #define    kAAPLDeviceLogicalAddress "AAPL,address"
  68. typedef LogicalAddress *DeviceLogicalAddressPtr;
  69. #if FOR_SYSTEM7_ONLY
  70.  
  71. enum {
  72.     durationMicrosecond            = -1L,                            /* Microseconds are negative*/
  73.     durationMillisecond            = 1L,                            /* Milliseconds are positive*/
  74.     durationSecond                = 1000L,                        /* 1000 * durationMillisecond*/
  75.     durationMinute                = 60000L,                        /* 60 * durationSecond,*/
  76.     durationHour                = 3600000L,                        /* 60 * durationMinute,*/
  77.     durationDay                    = 86400000L,                    /* 24 * durationHour,*/
  78.     durationNoWait                = 0L,                            /* don't block*/
  79.     durationForever                = 0x7FFFFFFF                    /* no time limit*/
  80. };
  81.  
  82. #define kCurrentAddressSpaceID ((AddressSpaceID) -1)
  83. #endif
  84.  
  85. enum {
  86.     k8BitAccess                    = 0,                            /* access as 8 bit*/
  87.     k16BitAccess                = 1,                            /* access as 16 bit*/
  88.     k32BitAccess                = 2                                /* access as 32 bit*/
  89. };
  90.  
  91. #if FOR_SYSTEM7_ONLY
  92. typedef UnsignedWide Nanoseconds;
  93. #endif
  94. extern void BlockCopy(const void *srcPtr, void *destPtr, Size byteCount);
  95.  
  96. extern LogicalAddress PoolAllocateResident(ByteCount byteSize, Boolean clear);
  97.  
  98. extern OSStatus PoolDeallocate(LogicalAddress address);
  99.  
  100. extern ByteCount GetLogicalPageSize(void );
  101.  
  102. extern ByteCount GetDataCacheLineSize(void );
  103.  
  104. extern OSStatus FlushProcessorCache(AddressSpaceID spaceID, LogicalAddress base, ByteCount length);
  105.  
  106. extern LogicalAddress MemAllocatePhysicallyContiguous(ByteCount byteSize, Boolean clear);
  107.  
  108. extern OSStatus MemDeallocatePhysicallyContiguous(LogicalAddress address);
  109.  
  110. #if FOR_SYSTEM7_ONLY
  111. extern AbsoluteTime UpTime(void );
  112.  
  113. extern void GetTimeBaseInfo(UInt32 *minAbsoluteTimeDelta, UInt32 *theAbsoluteTimeToNanosecondNumerator, UInt32 *theAbsoluteTimeToNanosecondDenominator, UInt32 *theProcessorToAbsoluteTimeNumerator, UInt32 *theProcessorToAbsoluteTimeDenominator);
  114.  
  115. extern Nanoseconds AbsoluteToNanoseconds(AbsoluteTime absoluteTime);
  116.  
  117. extern Duration AbsoluteToDuration(AbsoluteTime absoluteTime);
  118.  
  119. extern AbsoluteTime NanosecondsToAbsolute(Nanoseconds nanoseconds);
  120.  
  121. extern AbsoluteTime DurationToAbsolute(Duration duration);
  122.  
  123. extern AbsoluteTime AddAbsoluteToAbsolute(AbsoluteTime absoluteTime1, AbsoluteTime absoluteTime2);
  124.  
  125. extern AbsoluteTime SubAbsoluteFromAbsolute(AbsoluteTime leftAbsoluteTime, AbsoluteTime rightAbsoluteTime);
  126.  
  127. extern AbsoluteTime AddNanosecondsToAbsolute(Nanoseconds nanoseconds, AbsoluteTime absoluteTime);
  128.  
  129. extern AbsoluteTime AddDurationToAbsolute(Duration duration, AbsoluteTime absoluteTime);
  130.  
  131. extern AbsoluteTime SubNanosecondsFromAbsolute(Nanoseconds nanoseconds, AbsoluteTime absoluteTime);
  132.  
  133. extern AbsoluteTime SubDurationFromAbsolute(Duration duration, AbsoluteTime absoluteTime);
  134.  
  135. extern Nanoseconds AbsoluteDeltaToNanoseconds(AbsoluteTime leftAbsoluteTime, AbsoluteTime rightAbsoluteTime);
  136.  
  137. extern Duration AbsoluteDeltaToDuration(AbsoluteTime leftAbsoluteTime, AbsoluteTime rightAbsoluteTime);
  138.  
  139. extern Nanoseconds DurationToNanoseconds(Duration theDuration);
  140.  
  141. extern Duration NanosecondsToDuration(Nanoseconds theNanoseconds);
  142.  
  143. #endif
  144. extern OSErr PBQueueInit(QHdrPtr qHeader);
  145.  
  146. extern OSErr PBQueueCreate(QHdrPtr *qHeader);
  147.  
  148. extern OSErr PBQueueDelete(QHdrPtr qHeader);
  149.  
  150. extern void PBEnqueue(QElemPtr qElement, QHdrPtr qHeader);
  151.  
  152. extern OSErr PBEnqueueLast(QElemPtr qElement, QHdrPtr qHeader);
  153.  
  154. extern OSErr PBDequeue(QElemPtr qElement, QHdrPtr qHeader);
  155.  
  156. extern OSErr PBDequeueFirst(QHdrPtr qHeader, QElemPtr *theFirstqElem);
  157.  
  158. extern OSErr PBDequeueLast(QHdrPtr qHeader, QElemPtr *theLastqElem);
  159.  
  160. extern char *CStrCopy(char *dst, const char *src);
  161.  
  162. extern StringPtr PStrCopy(StringPtr dst, ConstStr255Param src);
  163.  
  164. extern char *CStrNCopy(char *dst, const char *src, UInt32 max);
  165.  
  166. extern StringPtr PStrNCopy(StringPtr dst, ConstStr255Param src, UInt32 max);
  167.  
  168. extern char *CStrCat(char *dst, const char *src);
  169.  
  170. extern StringPtr PStrCat(StringPtr dst, ConstStr255Param src);
  171.  
  172. extern char *CStrNCat(char *dst, const char *src, UInt32 max);
  173.  
  174. extern StringPtr PStrNCat(StringPtr dst, ConstStr255Param src, UInt32 max);
  175.  
  176. extern void PStrToCStr(char *dst, ConstStr255Param src);
  177.  
  178. extern void CStrToPStr(Str255 dst, const char *src);
  179.  
  180. extern SInt16 CStrCmp(const char *s1, const char *s2);
  181.  
  182. extern SInt16 PStrCmp(ConstStr255Param str1, ConstStr255Param str2);
  183.  
  184. extern SInt16 CStrNCmp(const char *s1, const char *s2, UInt32 max);
  185.  
  186. extern SInt16 PStrNCmp(ConstStr255Param str1, ConstStr255Param str2, UInt32 max);
  187.  
  188. extern UInt32 CStrLen(const char *src);
  189.  
  190. extern UInt32 PStrLen(ConstStr255Param src);
  191.  
  192. extern OSStatus DeviceProbe(void *theSrc, void *theDest, UInt32 AccessType);
  193.  
  194. extern OSStatus DelayForHardware(AbsoluteTime absoluteTime);
  195.  
  196.  
  197. #if PRAGMA_ALIGN_SUPPORTED
  198. #pragma options align=reset
  199. #endif
  200.  
  201. #if PRAGMA_IMPORT_SUPPORTED
  202. #pragma import off
  203. #endif
  204.  
  205. #ifdef __cplusplus
  206. }
  207. #endif
  208.  
  209. #endif /* __DRIVERSUPPORT__ */
  210.  
  211.